home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
Z-Misc Series
/
(k)zk.d64
/
txt.grammar
< prev
next >
Wrap
Text File
|
2007-03-01
|
6KB
|
294 lines
╙╧═┼ ╠╔╬╟╒╔╙╘╔├╙ ┴╬─ ╨╧┼╘╥┘
BY ─ICK ╦LINGENS
─UTCH ├╧═┴╠ ╒SERS ╟ROUP
┴ PROGRAMMING LANGUAGE CAN BE
DESCRIBED WITH SO CALLED PRODUCTION
RULES: RULES THAT PRODUCE PROGRAMS
WRITTEN IN THAT PROGRAMMING LANGUAGE.
╙UCH RULES FOR ├╧═┴╠ CAN BE FOUND IN
╠EN ╠INDSAY'S ├╧═┴╠ ╚ANDBOOK (PAGES
413-422).
┴ CONTEXT FREE GRAMMAR IS A FORMAL
DESCRIPTION OF THE GRAMMAR OF A
LANGUAGE. ╬OTIONS OF THE LANGUAGE ARE
DESCRIBED (OR DEFINED) IN TERMS OF
OTHER NOTIONS OR FINALLY IN TERMS OF
WORDS FROM THE LANGUAGE. ╘HE
PRODUCTION RULES FOR ├╧═┴╠ FORM AN
(ALMOST) CONTEXT FREE GRAMMAR FOR
├╧═┴╠.
┴N EXAMPLE.
<IDENTIFIER> MEANS: THE NOTION
'IDENTIFIER' OR, IN OTHER WORDS,
'WHAT IS AN IDENTIFIER'.
::= MEANS: IS DEFINED BY.
╔N THE ├╧═┴╠ KERNAL (LAST LINE ON
PAGE 417) WE FIND IN A MODIFIED WAY:
1. <INTEGER>::=
<DIGIT>!<DIGIT><INTEGER>
2. <DIGIT>::=0!1!2!3!4!5!6!7!8!9
IN WHICH ! MEANS ╧╥.
╘HE NOTIONS NOT WRITTEN BETWEEN < AND
> ARE CALLED TERMINAL SYMBOLS.
╘O FIND OUT WHETHER 1234 IS AN
<INTEGER> OR NOT WE HAVE:
1234 = 1 234
╞OLLOWING THE SECOND PART OF RULE 1:
1 IS A DIGIT AND WE NOW EXAMINE 234.
╔S IT AN INTEGER?
234 = 2 34
2 IS A DIGIT AND WE NOW EXAMINE 34.
╔S IT AN INTEGER?
34 = 3 4
3 IS A DIGIT AND WE NOW EXAMINE 4. ╔S
IT AN INTEGER? ┘ES, THAT FOLLOWS FROM
FIRST PART OF RULE 1.
╙O 1234 IS AN INTEGER.
╘HE ├╧═┴╠ KERNAL DESCRIBES IN A
FORMAL WAY WHAT A PROGRAM IS.
╘HEREFOR THE FIRST PRODUCTION RULE OF
THE KERNAL IS
<COMAL PROGRAM>::=<BLOCK>
╨ARTS OF A NATURAL LANGUAGE SOMETIMES
CAN BE DESCRIBED IN THE SAME WAY.
╘HERE IS HOWEVER A SLIGHT (BIG)
DIFFERENCE: SENTENCES ARE SOMETIMES
MEANINGLESS BUT SYNTACTICALLY CORRECT
ACCORDING TO THE RULES.
╔N THE PROGRAM '┴ ├╞ ╟╥┴══┴╥' ╔
DESCRIBE A CONTEXT FREE GRAMMAR FOR
SOME ┼NGLISH SENTENCES, INSPIRED BY
THE ┴MERICAN SONG '═ARY HAD A LITTLE
LAMB'.
╘O PRODUCE UNEXPECTED SENTENCES ╔
USED ON SEVERAL PLACES IN THE SYNTAX
A CONTRUCTION LIKE
<ARTICLE>::=[0.45] A ! THE
WHICH MEANS
THE PROBABILITY FOR CHOOSING "A" AS
AN <ARTICLE> IS 0.45; THE ALTERNATIVE
"THE" HAS PROBABILITY 1 - 0.45 = 0.55
"A" AND "THE" ARE TERMINAL SYMBOLS.
╘HE PRODUCTION OF A SENTENCE STARTS
WITH
<SENTENCE>::=<SUBJECT><PREDICATE>
<ENDSYMBOL>
<SUBJECT>::=[0.7]<SUBSTANTIVE GROUP>!
<PERSONAL PRONOUN 1>
<SUBSTANTIVE GROUP>::=<ARTICLE><NOUN
PHRASE>
╔T IS EASY TRANSFORM THE GRAMMAR INTO
A ├╧═┴╠ PROGRAM THAT PRODUCES THE
SENTENCES:
╨╥╧├ SENTENCE
SUBJECT; PREDICATE; ENDSYMBOL
┼╬─╨╥╧├ SENTENCE
//
╨╥╧├ SUBJECT
╔╞ P(0.7) ╘╚┼╬
SUBSTANTIVE'GROUP
┼╠╙┼
PERSONAL'PRONOUN'1
┼╬─╔╞
┼╬─╨╥╧├ SUBJECT
//
╨╥╧├ SUBSTANTIVE'GROUP
ARTICLE; NOUN'PHRASE
┼╬─╨╥╧├ SUBSTANTIVE'GROUP
//
╨╥╧├ ARTICLE
╔╞ P(0.45) ╘╚┼╬
SYMBOL("A")
┼╠╙┼
SYMBOL("THE")
┼╬─╔╞
┼╬─╨╥╧├ ARTICLE
//
╨╥╧├ ENDSYMBOL
╨╥╔╬╘
┼╬─╨╥╧├ ENDSYMBOL
//
╞╒╬├ P(X) ├╠╧╙┼─
╥┼╘╒╥╬ ╥╬─<X
┼╬─╞╒╬├ P
//
// ╘HE OTHER RULES CAN BE FOUND IN
// THE PROGRAM LISTING
╘O PRINT THE TERMINAL SYMBOLS ON THE
SCREEN WE USE
╨╥╧├ SYMBOL(X$)
╨╥╔╬╘ X$+" ",
┼╬─╨╥╧├ SYMBOL
╘HE GRAMMAR IS CALLED A PROBABLISTIC
CONTEXT FREE LANGUAGE BECAUSE
PROBABILITIES ARE USED DURING
PRODUCTION. ╙OME PRODUCED SENTENCES
ARE
- THE BEAR THAT SEES THE BEAR LIKES A
BAD BEAR
- THE BEAR LIKES HIM
- THE BOY DREAMS ABOUT THE BEAR
- A GIRL NEVER SEES THE GIRL
- ╩IM SEES ═ARY
- A BOY THAT SEES THE BIG TREE ALWAYS
LIKES A BOY THAT ALWAYS EATS A TREE
- ═ARY EATS A LITTLE BEAR
╔N CONTEXT FREE GRAMMARS RECURSION IS
OFTEN USED TO DEFINE NOTIONS:
<NOUN PHRASE>::=
[0.25]<ADJECTIVE><NOUN PHRASE>!
<NOUNPART>
┴ND BECAUSE ├╧═┴╠ ITSELF ALLOWS
RECURSION TRANSFORMING THIS RULE CAN
BE ACCOMPLISHED IN A VERY NATURAL WAY
╨╥╧├ NOUN'PHRASE
╔╞ P(0.25) ╘╚┼╬
ADJECTIVE
NOUN'PHRASE // ├╧═┴╠ RECURSION!
┼╠╙┼
NOUNPART
┼╬─╔╞
┼╬─╨╥╧├ NOUN'PHRASE
╫HAT ABOUT WRITING A ├╧═┴╠ PROGRAM
NOW THAT PRODUCES ├╧═┴╠ PROGRAMS?
╞IRST THE PRODUCTION RULES FOR A VERY
╘╔╬┘├╧═┴╠:
<PROGRAM> ::=<STATEMENT LIST>
<STATEMENT LIST>::=<STATEMENT>!
<STATEMENT LIST>
<STATEMENT> ::=<IDENTIFIER>:=
<BOOLEAN><NEW LINE>
<IDENTIFIER> ::=A
<BOOLEAN> ::=╘╥╒┼ ! ╞┴╠╙┼
<NEW LINE> ::=
╘HE LAST NOTION <NEW LINE> MEANS THAT
EVERY STATEMENT STARTS ON A NEW LINE.
╘HE ├╧═┴╠ PROGRAM:
PROGRAM
//
╨╥╧├ PROGRAM
STATEMENT'LIST
┼╬─╨╥╧├ PROGRAM
//
╨╥╧├ STATEMENT'LIST
// HERE WE USE ╥╬─ TO END RECURSION
╔╞ ╥╬─<0.7 ╘╚┼╬
STATEMENT'LIST
┼╬─╔╞
STATEMENT
┼╬─╨╥╧├ STATEMENT'LIST
//
╨╥╧├ STATEMENT
IDENTIFIER
SYMBOL(":=")
BOOLEAN
NEW'LINE
┼╬─╨╥╧├ STATEMENT
//
╨╥╧├ IDENTIFIER
SYMBOL("A")
┼╬─╨╥╧├ IDENTIFIER
//
╨╥╧├ BOOLEAN
╔╞ ╥╬─<0.5 ╘╚┼╬
SYMBOL("╘╥╒┼")
┼╠╙┼
SYMBOL("╞┴╠╙┼")
┼╬─╔╞
┼╬─╨╥╧├ BOOLEAN
//
╨╥╧├ NEW'LINE
╨╥╔╬╘
┼╬─╨╥╧├ NEW'LINE
//
╨╥╧├ SYMBOL(X$)
╨╥╔╬╘ X$,
┼╬─╨╥╧├ SYMBOL
╚AVE SOME PROGRAMMING FUN WITH
WRITING THE WHOLE ├╧═┴╠ KERNAL IN THE
SAME WAY!
╧N THE DISK IS ALSO A PROGRAM CALLED
╚┴╔╦╒. ╔T GENERATES A TYPE OF POETRY
CALLED 'HAIKU'. ╘HE HAIKU ORIGINATED
IN ╩APAN ABOUT FOUR CENTURIES AGO. ╔N
ITS MOST CLASSICAL VERSION THE HAIKU
CONSISTS OF THREE LINES, WITH FIVE
SYLLABES IN THE FIRST LINE, SEVEN
SYLLABES IN THE SECOND AND FIVE IN
THE THIRD.
╘HE HAIKU-COMPOSING PROGRAM HAS A
BUILT-IN VOCABULARY OF 124 WORDS. ╘HE
PRODUCTION OF THE POEMS IS DECRIBED
BY PRODUCTION RULES OF THE SAME KIND
THAT WAS DECRIBED ABOVE. ╚OWEVER,
BECAUSE THE ╩APANESE SYLLABE-SOUND IS
NOT EQUIVALENT TO THE ┼NGLISH
SYLLABE, POEMS WHICH ╚┴╔╦╒ CREATES
ARE NOT LIMITED TO THE 5-7-5 PATTERN.
╧NE OF THE FOUR HAIKU PATTERNS WHICH
ARE USED BY THE PROGRAM, IS:
<ARTICLE><ADJECTIVE><NOUN>...
<ARTICLE><NOUN><VERB>
<PREPOSITION><ARTICLE><NOUN>
<ADJECTIVE><ADJECTIVE><NOUN>
GENERATING A HAIKU SUCH AS
┴ ╙╨╥╔╬╟ ═┼┴─╧╫...
╘╚┼ ═╧╧╬ ╙╠┼┼╨╙ ╒╬─┼╥ ┴ ┬╒╙╚
┬╥╧╦┼╬ ┬╠╒┼ ╙╬╧╫╞╠┴╦┼
╚AVE SOME FUN WITH GENERATING
HAIKU'S!